/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ant;
import java.awt.Color;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
@Entity
@NamedQueries({
@NamedQuery(name = "Plateau.findByNom", query = "SELECT p FROM Plateau p WHERE p.nom = :nom")
})
public class Plateau implements Serializable{
private static final long serialVersionUID = 1L;
@Id
private String nom;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private Collection<Piece> listePiece = new ArrayList<>();
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private Joueur joueur1;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private Joueur joueur2;
public void Plateau(){
}
public void init(String nom){
setNom(nom);
setJoueur1(null);
setJoueur2(null);
listePiece.add(new Tour(7, 0, Color.WHITE));
listePiece.add(new Cavalier(7, 1, Color.WHITE));
listePiece.add(new Fou(7, 2, Color.WHITE));
listePiece.add(new Roi(7, 3, Color.WHITE));
listePiece.add(new Reine(7, 4, Color.WHITE));
listePiece.add(new Fou(7, 5, Color.WHITE));
listePiece.add(new Cavalier(7, 6, Color.WHITE));
listePiece.add(new Tour(7, 7, Color.WHITE));
listePiece.add(new Pion(6, 0, Color.WHITE));
listePiece.add(new Pion(6, 1, Color.WHITE));
listePiece.add(new Pion(6, 2, Color.WHITE));
listePiece.add(new Pion(6, 3, Color.WHITE));
listePiece.add(new Pion(6, 4, Color.WHITE));
listePiece.add(new Pion(6, 5, Color.WHITE));
listePiece.add(new Pion(6, 6, Color.WHITE));
listePiece.add(new Pion(6, 7, Color.WHITE));
listePiece.add(new Tour(0, 0, Color.BLACK));
listePiece.add(new Cavalier(0, 1, Color.BLACK));
listePiece.add(new Fou(0, 2, Color.BLACK));
listePiece.add(new Roi(0, 3, Color.BLACK));
listePiece.add(new Reine(0, 4, Color.BLACK));
listePiece.add(new Fou(0, 5, Color.BLACK));
listePiece.add(new Cavalier(0, 6, Color.BLACK));
listePiece.add(new Tour(0, 7, Color.BLACK));
listePiece.add(new Pion(1, 0, Color.BLACK));
listePiece.add(new Pion(1, 1, Color.BLACK));
listePiece.add(new Pion(1, 2, Color.BLACK));
listePiece.add(new Pion(1, 3, Color.BLACK));
listePiece.add(new Pion(1, 4, Color.BLACK));
listePiece.add(new Pion(1, 5, Color.BLACK));
listePiece.add(new Pion(1, 6, Color.BLACK));
listePiece.add(new Pion(1, 7, Color.BLACK));
}
public void removePiece(int x, int y){
System.out.println("removePiece");
for(Piece piece : listePiece){
if(piece.isAt(x, y)){
System.err.println("removed");
listePiece.remove(piece);
break;
}
}
}
public Collection<Piece> getListePiece(){
return listePiece;
}
public void setNom(String nom){
this.nom = nom;
}
public void setJoueur1(Joueur joueur) {
joueur1 = joueur;
}
public void setJoueur2(Joueur joueur) {
joueur2 = joueur;
}
public Joueur getJoueur1(){
return joueur1;
}
public Joueur getJoueur2(){
return joueur2;
}
public String getNom(){
return nom;
}
public int getNombreDeJoueurs(){
int cpt = 0;
if(getJoueur1() != null){
cpt++;
}
if(getJoueur2() != null){
cpt++;
}
return cpt;
}
public Joueur getJoueurByCouleur(Color color){
if(getJoueur1().getColor().getRGB() == color.getRGB()){
return getJoueur1();
}else{
return getJoueur2();
}
}
public Joueur quitterPlateau(Color color){
Joueur joueur = null;
if(getJoueur1().getColor().getRGB() == color.getRGB()){
joueur = getJoueur1();
setJoueur1(null);
}else{
joueur = getJoueur2();
setJoueur2(null);
}
return joueur;
}
public Piece getPiece(int x, int y){
for(Piece piece : listePiece){
if(piece.isAt(x, y)){
return piece;
}
}
return null;
}
public void clearPiece(){
this.listePiece.clear();
}
}